当前位置: 首页 >  帮助中心> vc 嵌入chrome浏览器插件(mfc内嵌谷歌浏览器)

vc 嵌入chrome浏览器插件(mfc内嵌谷歌浏览器)

硬件: Windows系统 版本: 213.2.1564.927 大小: 84.85MB 语言: 简体中文 评分: 发布: 2024-08-06 更新: 2024-10-16 厂商: 谷歌信息技术

硬件:Windows系统 版本:213.2.1564.927 大小:84.85MB 厂商: 谷歌信息技术 发布:2024-08-06 更新:2024-10-16

硬件:Windows系统 版本:213.2.1564.927 大小:84.85MB 厂商:谷歌信息技术 发布:2024-08-06 更新:2024-10-16

苹果下载

跳转至官网

在Visual C++中嵌入Chrome浏览器插件需要使用Chrome

API,这是一项比较复杂的任务。本文将详细介绍如何在Visual C++中嵌入Chrome浏览器插件,并提供一些实用的技巧和注意事项。

一、准备工作

在使用Chrome API之前,您需要确保已经安装了Chrome浏览器,并且开启了“允许加载未标记为安全的扩展程序”选项。您还需要下载并安装Chrome

API的相关库文件。

二、创建项目

在Visual C++中创建一个新的Win32应用程序项目,并选择“MFC Application”作为模板。您需要添加以下头文件和库文件:

`atlbase.h`

`atlcomcli.h`

`atlstr.h`

`mshtml.h`

`urlmon.h`

`wininet.h`

`chromeext.lib`(Chrome API库)

三、编写代码

在您的项目中,您需要实现一个类来处理Chrome浏览器插件的初始化和事件处理。以下是一个简单的示例:

```cpp

include

include

include

include

include

include

include

include// Chrome API库头文件

class CChromeExtensionHandler : public IDispatch {

public:

CChromeExtensionHandler();

STDMETHOD_(ULONG, AddRef)();

STDMETHOD_(ULONG, Release)();

STDMETHOD(QueryInterface)(REFIID riid, void ppvObject);

STDMETHOD(GetTypeInfoCount)(UINT pctinfo);

STDMETHOD(GetTypeInfo)(UINT itinfo, LCID lcid, ITypeInfo pptinfo);

STDMETHOD(GetIDsOfNames)(REFIID riid, LPOLESTR rgszNames, UINT cNames, LCID lcid, DISPID rgdispid);

STDMETHOD(Invoke)(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS pdispparams, VARIANT pvarResult, EXCEPINFO pexcepinfo, UINT puArgErr);

private:

long _cRef; // 引用计数器

};

CChromeExtensionHandler::CChromeExtensionHandler() : _cRef(1) {}

CChromeExtensionHandler::~CChromeExtensionHandler() {}

STDMETHODIMP CChromeExtensionHandler::AddRef() { return (_cRef++); }

STDMETHODIMP CChromeExtensionHandler::Release() { return (--_cRef); }

STDMETHODIMP CChromeExtensionHandler::QueryInterface(REFIID riid, void ppvObject) { return E_NOINTERFACE; }

STDMETHODIMP CChromeExtensionHandler::GetTypeInfoCount(UINT pctinfo) { return E_NOTIMPL; }

STDMETHODIMP CChromeExtensionHandler::GetTypeInfo(UINT itinfo, LCID lcid, ITypeInfo pptinfo) { return E_NOTIMPL; }

STDMETHODIMP CChromeExtensionHandler::GetIDsOfNames(REFIID riid, LPOLESTR rgszNames, UINT cNames, LCID lcid, DISPID rgdispid) { return E_NOTIMPL; }

STDMETHODIMP CChromeExtensionHandler::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS pdispparams, VARIANT pvarResult, EXCEPINFO pexcepinfo, UINT puArgErr) { return E_NOTIMPL; }

HRESULT CreateChromeExtensionHandlerInstance(); // 创建Chrome插件处理实例的函数声明

void OnMessageReceived(HWND hWndBrowserHostWindow, DWORD_PTR idEvent); // Chrome插件消息接收函数声明

void OnPaint(HDC hdc); // Chrome插件绘制函数声明

void OnResize(int width, int height); // Chrome插件窗口大小改变函数声明

void OnLoadCompleted(bool succeeded); // Chrome插件加载完成回调函数声明

// ... 其他函数声明 ...

```



猜你喜欢
chrome每次重启都会还原设置(chrome每次打开重置设置)
chrome每次重启都会还原设置(chrome每次打开重置设置)
在当今的数字化时代,Chrome浏览器已经成为了我们日常生活中不可或缺的一部分。对于一些需要使用特定功能的用户来说,他们可能会遇到一个问题:每次重启Chrome浏览器后,所有的设置都会被还原。本文将为大家介绍为什么Chrome每次重启都会还...
mac 设置默认浏览器 chrome(macbook默认浏览器怎么设置)
mac 设置默认浏览器 chrome(macbook默认浏览器怎么设置)
在Mac电脑上,您可以通过设置默认浏览器来更改您使用最多的浏览器。如果您经常使用Chrome浏览器,那么将其设置为默认浏览器将非常方便。以下是一些关于如何设置Chrome为Mac默认浏览器的详细说明。1. 打开Chrome浏览器您需要打开C...
下载附件提示Chrome停止工作(chrome下载被中断)
下载附件提示Chrome停止工作(chrome下载被中断)
如果您在使用Chrome浏览器下载附件时遇到了“Chrome已停止工作”的提示,那么这可能是由于您的浏览器出现了一些问题或者错误。以下是一些可能有用的解决方案:1. 清除浏览器缓存和Cookie:有时候,浏览器缓存和Cookie中的数据可能...
授权Chrome对网站的视频权限
授权Chrome对网站的视频权限
在现代社会中,视频已经成为了人们日常生活中不可或缺的一部分。无论是观看电影、电视节目还是在线学习、游戏娱乐等,都需要使用到视频资源。由于各种原因,有些网站可能会限制用户对视频的访问权限,这就需要我们通过授权Chrome对网站的视频权限来解决...
返回顶部